import sqlite3
'''
SQLite 是一种轻型嵌入式关系型数据库，它包含在一个相对小的 C 库中。SQLite 占用资源低，处理速度快，
它支持 Windows、Linux、Unix 等多种主流操作系统，支持 Python、Java、C# 等多种语言，目前的版本已经发展到了 SQLite3。

SQLite 是一个进程内的库，它实现了自给自足、无服务器、无需配置、支持事务。Python 可以通过 sqlite3 模块与 SQLite3 集成，
Python 2.5.x 以上版本内置了 sqlite3 模块，因此，我们在 Python 中可以直接使用 SQLite
'''
# 连接数据库  如果数据库不存在，则会自动被创建
conn = sqlite3.connect('test.db')
# 创建游标
cs = conn.cursor()
# 创建表
# cs.execute('''CREATE TABLE student
#        (id varchar(20) PRIMARY KEY,
#         name varchar(20));''')

# 新增
cs.execute("INSERT INTO student (id, name) VALUES ('1', 'Jhon')")
cs.execute("INSERT INTO student (id, name) VALUES ('2', 'Alan')")
cs.execute("INSERT INTO student (id, name) VALUES ('3', 'Bob')")

# 查询数据
# cs.execute("SELECT id, name FROM student")
# # 获取查询结果集中的下一行
# print('fetchone-->', cs.fetchone())
# # 获取查询结果集中的下一行组
# print('fetchmany-->', cs.fetchmany())
# # 获取查询结果集中所有（剩余）的行
# print('fetchall-->', cs.fetchall())

# 修改数据
# cs.execute("SELECT id, name FROM student WHERE id = '1'")
# print('修改前-->', cs.fetchall())
# cs.execute("UPDATE student set name = 'Nicolas' WHERE id = '1'")
# cs.execute("SELECT id, name FROM student WHERE id = '1'")
# print('修改后-->', cs.fetchall())

# 删除
# cs.execute("SELECT id, name FROM student")
# print('删除前-->', cs.fetchall())
# cs.execute("DELETE FROM student WHERE id = '1'")
# cs.execute("SELECT id, name FROM student")
# print('删除后-->', cs.fetchall())

# 关闭 Cursor
cs.close()
# 提交当前事务
conn.commit()
# 关闭连接
conn.close()

# 其他教程：https://www.liaoxuefeng.com/wiki/1016959663602400/1017801751919456